package com.edais.service;

import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Service;

import com.edais.domain.SalesmanMonthRecord;
import com.edais.domain.SalesmanRecord;

import com.alibaba.fastjson.JSONObject;

@Service

	
public interface KcodeChannelService {
	/**
	 * 
	 * @Description: 激活k码送理财新接口
	 * @param @param pageMode
	 * @param @return
	 * @param @throws Exception   
	 * @return Map<String,Object>  
	 * @throws
	 * @author wuhan
	 * @date 2016-7-14
	 */
	public Map<String, Object> activityBidByBalanceNew(String logInfo, Map<String, Object> pageMode)throws Exception;

	/***
	 * 
	 * @Description: 通过卡号查询k码和渠道信息
	 * @param @param parmMap
	 * @param @return
	 * @param @throws Exception   
	 * @return Map<String,Object>  
	 * @throws
	 * @author wuhan
	 * @date 2016-7-14
	 */
	public Map<String, Object> selectCardNo(Map<String, Object> parmMap)throws Exception;
	
	/**
	 * 
	 * @Description: 通过卡号查询卡号导入参数设置表信息
	 * @param @param parmMap
	 * @param @return
	 * @param @throws Exception   
	 * @return Map<String,Object>  
	 * @throws
	 * @author wuhan
	 * @date 2016-7-14
	 */
	public Map<String, Object> selectTimeCardNo(Map<String, Object> parmMap)throws Exception;

	/**
	 * 设置归属地
	 * @Description: TODO
	 * @param @param areaInfoMap   
	 * @return void  
	 * @throws
	 * @author wuhan
	 * @date 2016-7-20
	 */
	public Map<String,Object> setAreaInfo(Map<String, Object> areaInfoMap);
	
	/**
	 * 
	 * @Description: 手机k码逻辑
	 * @param @param coopmodel 合作模式
	 * @param @param mobileNumber 手机号
	 * @param @param checkType 1：激活校验，2：手机号码校验
	 * @param @return
	 * @param @throws Exception   
	 * @return Map<String,Object>  
	 * @throws
	 * @author wuhan
	 * @date 2016-8-12
	 */
	public Map<String, Object> mobileKCode(String logInfo, String mobileNumber,String checkType) throws Exception;
	
	/**
	 * 设置GPS归属地
	 * @Description: TODO
	 * @param @param areaInfoMap   
	 * @return void  
	 * @throws
	 * @author wangdanqing
	 * @date 2016-8-17
	 */
	public void setGpsInfo(Map<String, Object> areaInfoMap) throws Exception;
	
	/**
	 * 查询会员表信息
	 * @Description: TODO
	 * @param  memberMap
	 * @param @return
	 * @param @throws Exception   
	 * @return List<Map<String,Object>>  
	 * @throws
	 * @author wuhan
	 * @date 2016-8-24
	 */
	public List<Map<String, Object>> queryMemberInfoList(Map<String,Object> memberMap) throws Exception;
	
	/**
	 * 添加销售人员返佣记录信息
	 * @Description: TODO
	 * @param @param memberMap
	 * @param @throws Exception   
	 * @return void  
	 * @throws
	 * @author wuhan
	 * @date 2016-8-24
	 */
	public void addSalesmanRecord(Map<String,Object> memberMap) throws Exception;
	
	/**
	 * 根据月份查询返佣信息
	 * @Description: TODO
	 * @param @param memberMap
	 * @param @return
	 * @param @throws Exception   
	 * @return List<Map<String,Object>>  
	 * @throws
	 * @author wuhan
	 * @date 2016-8-25
	 */
	public List<SalesmanRecord>  querySaleManRecordListByDate(Map<String,Object> memberMap) throws Exception;
	
	
	/**
	 * 根据月份查询返佣信息总数
	 * @Description: TODO
	 * @param @param memberMap
	 * @param @return
	 * @param @throws Exception   
	 * @return int  
	 * @throws
	 * @author wuhan
	 * @date 2016-8-29
	 */
	public int querySaleManRecordListByDateCount(Map<String,Object> memberMap) throws Exception;
	
	/**
	 * 返佣记录统计（组装集合）
	 * @Description: TODO
	 * @param @param memberMap
	 * @param @return
	 * @param @throws Exception   
	 * @return List<Map<String,Object>>  
	 * @throws
	 * @author wuhan
	 * @date 2016-8-25
	 */
	public List<Map<String, Object>> querySetSaleManRecordList(Map<String,Object> memberMap) throws Exception;
	
	
	/**
	 * 统计销售人员每月销售数据
	 * @Description: TODO
	 * @param @param memberMap
	 * @param @return
	 * @param @throws Exception   
	 * @return List<SalesmanMonthRecord>  
	 * @throws
	 * @author wuhan
	 * @date 2016-9-1
	 */
	public List<SalesmanMonthRecord> querySalesmanMonthRecord(Map<String,Object> memberMap) throws Exception;
	
	
	/**
	 * 统计销售人员每月销售数据总数
	 * @Description: TODO
	 * @param @param memberMap
	 * @param @return
	 * @param @throws Exception   
	 * @return int  
	 * @throws
	 * @author wuhan
	 * @date 2016-9-1
	 */
	public int querySalesmanMonthRecordCount(Map<String,Object> memberMap) throws Exception;
	
	/**
	 * 防止暴力攻击
	 * @Description: TODO
	 * @param @param reqMap 请求参数
	 * @param @param userId 用户id
	 * @param @return
	 * @param @throws Exception   
	 * @return Map<String,Object>  
	 * @throws
	 * @author wuhan
	 * @date 2016-9-19
	 */
	public Map<String, Object> preventAttacks(String logInfo, Map<String, Object> reqMap,String userId) throws Exception;
	
	/***
	 * k码 检查投资资格
	 * @Description: TODO
	 * @param @param response
	 * @param @param resultMap
	 * @param @param reqMap    请求参数
	 * @param @param cardNo    卡号
	 * @param @param userId    用户id
	 * @param @throws Exception   
	 * @return map  
	 * @throws
	 * @author wuhan
	 * @date 2016-9-19
	 */
	public Map<String, Object> kcoadQualifCheck(String logInfo, Map<String, Object> reqMap,String cardNo,String userId) throws Exception;
		
	
	/**
	 * 调用k码系统 激活o2o k码
	 * @Description: TODO
	 * @param @param reqMap 请求参数
	 * @return map   
	 * @throws Exception 
	 * @throws
	 * @author wuhan
	 * @date 2016-9-19
	 */
	public Map<String,Object> activityO2OKcode(String logInfo, Map<String, Object> reqMap) throws Exception;
	
	/**
	 * K码激活资格判定
	 * @param parm
	 * @return
	 * @throws Exception 
	 */
	public Map<String, Object> kCodeUseCompetency(Map<String, Object> parm) throws Exception;
	
	/**
	 * 设置归属地根据铜盾
	 * @Description: TODO
	 * @param @param areaInfoMap   
	 * @return void  
	 * @throws
	 * @author rxc
	 * @date 2016-7-20
	 */
	public Map<String,Object> setAreaInfoByTd(Map<String, Object> areaInfoMap);
	
	/**
	 * @Description 查询不可激活的k码
	 * @param params
	 * @return int
	 * @throws Exception
	 * @author wuhan
	 * @date 2016-11-14
	 */
	public int selectIllegal(Map<String,Object> params) throws Exception;
	
	/**
	 * 导入k码信息
	 * @param params
	 * @return
	 */
	public String importKcodeInfo(String loggerInfo,JSONObject params);
}
